import dayjs from 'dayjs';
import axios from '../axios';

/**
 * 获取某个月的每天日期
 * @param year 年份
 * @param month 月份
 * @returns 每天日期数组
 */
export const getDaysOfMonth = (year: number, month: number) => {
  // 获取某个月的第一天
  let firstDayOfMonth = dayjs(`${year}-${month}-1`);
  console.log('======= firstDayOfMonth =======\n', firstDayOfMonth);
  // 获取某个月的最后一天
  let lastDayOfMonth = dayjs(`${year}-${month + 1}-1`).subtract(1, 'day');
  console.log('======= lastDayOfMonth =======\n', lastDayOfMonth);
  // 获取某个月的第一天是星期几
  while (firstDayOfMonth.day() !== 0) {
    firstDayOfMonth = firstDayOfMonth.subtract(1, 'day');
  }

  // 获取某个月的最后一天是星期几
  while (lastDayOfMonth.day() !== 6) {
    lastDayOfMonth = lastDayOfMonth.add(1, 'day');
  }

  // 创建一个空数组，用于存放每天日期
  const days = [];

  // 创建一个临时日期变量，用于遍历某个月的所有日期
  let tempDate = firstDayOfMonth;

  // 获取当前月份的第一天是星期几
  while (tempDate.isBefore(lastDayOfMonth) || tempDate.isSame(lastDayOfMonth)) {
    days.push(tempDate);

    // 临时日期变量添加一天
    tempDate = tempDate.add(1, 'day');
  }

  return days;
};

/**
 * 获取今天的日期
 * @returns 今天的日期对象
 */
export const getToday = () => {
  // 获取今天的日期
  const today = new Date();

  // 获取今天的年份
  const year = today.getFullYear();

  // 获取今天的月份
  const monthIdx = today.getMonth() + 1;

  // 获取今天的日期
  const oneday = today.getDate();

  return { year, monthIdx, oneday };
};

export const getClasses = async (id: string) => {
  const {
    data: { data },
  } = await axios.get('getClasses', { params: { id } });

  return data;
};
